package com.fy.module.exam.entity;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;

import javax.annotation.security.DeclareRoles;

/**
 * <p>
 * 课程
 * </p>
 *
 * @author yang
 * @since 2023-03-22
 */
@TableName("el_exam")
@ApiModel(value = "Exam对象", description = "课程")
public class Exam implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("ID")
    private String id;

    @ApiModelProperty("考试名称")
    private String title;

    @ApiModelProperty("考试描述")
    private String content;

    @ApiModelProperty("1公开2部门3定员")
    private Integer openType;

    @ApiModelProperty("组题方式1题库,2指定")
    private Integer joinType;

    @ApiModelProperty("难度:0不限,1普通,2较难")
    private Integer level;

    @ApiModelProperty("考试状态")
    private Integer state;

    @ApiModelProperty("是否限时")
    private Integer timeLimit;

    @ApiModelProperty("开始时间")
    private Date startTime;

    @ApiModelProperty("结束时间")
    private Date endTime;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("总分数")
    private Integer totalScore;

    @ApiModelProperty("总时长（分钟）")
    private Integer totalTime;

    @ApiModelProperty("及格分数")
    private Integer qualifyScore;

    @ApiModelProperty("逻辑删除 0表示存在 1表示删除")
    @TableLogic
    private Integer deleted;

    @Version
    @ApiModelProperty("乐观锁，用于事务互斥")
    private Integer version;

    public Integer getDeleted() {
        return deleted;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
    public Integer getOpenType() {
        return openType;
    }

    public void setOpenType(Integer openType) {
        this.openType = openType;
    }
    public Integer getJoinType() {
        return joinType;
    }

    public void setJoinType(Integer joinType) {
        this.joinType = joinType;
    }
    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }
    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }
    public Integer getTimeLimit() {
        return timeLimit;
    }

    public void setTimeLimit(Integer timeLimit) {
        this.timeLimit = timeLimit;
    }
    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public Integer getTotalScore() {
        return totalScore;
    }

    public void setTotalScore(Integer totalScore) {
        this.totalScore = totalScore;
    }
    public Integer getTotalTime() {
        return totalTime;
    }

    public void setTotalTime(Integer totalTime) {
        this.totalTime = totalTime;
    }
    public Integer getQualifyScore() {
        return qualifyScore;
    }

    public void setQualifyScore(Integer qualifyScore) {
        this.qualifyScore = qualifyScore;
    }

    @Override
    public String toString() {
        return "Exam{" +
            "id=" + id +
            ", title=" + title +
            ", content=" + content +
            ", openType=" + openType +
            ", joinType=" + joinType +
            ", level=" + level +
            ", state=" + state +
            ", timeLimit=" + timeLimit +
            ", startTime=" + startTime +
            ", endTime=" + endTime +
            ", createTime=" + createTime +
            ", updateTime=" + updateTime +
            ", totalScore=" + totalScore +
            ", totalTime=" + totalTime +
            ", qualifyScore=" + qualifyScore +
        "}";
    }
}
